package com.example.kyyl.greendao;

import android.content.Context;

import com.example.kyyl.greendao.dbbase.BleBeanDao;
import com.example.kyyl.greendao.dbbase.DaoSession;

import java.util.List;

/**
 * @ProjectName: KYYL
 * @Package: com.example.kyyl.greendao
 * @ClassName: StudentDaoUtil
 * @Description: java类作用描述
 * @CreateDate: 2021/6/1 0001 9:43
 * @UpdateUser: 更新者：
 * @UpdateDate: 2021/6/1 0001 9:43
 * @UpdateRemark: 更新说明：
 * @Version: 1.0
 */
public class BleDeviceDaoUtil {
    private static final boolean DUBUG = true;
    private DaoManager manager;
    private BleBeanDao studentDao;
    private DaoSession daoSession;

    public BleDeviceDaoUtil(Context context) {
        manager = DaoManager.getInstance();
        manager.init(context);
        daoSession = manager.getDaoSession();
        manager.setDebug(DUBUG);
    }

    /**
     * 添加数据，如果有重复则覆盖
     */
    public void insertBleBean(BleBean bleBean) {
        manager.getDaoSession().insertOrReplace(bleBean);
    }

    /**
     * 添加多条数据，需要开辟新的线程
     */
    public void insertMultBleBean(final List<BleBean> bleBeans) {
        manager.getDaoSession().runInTx(new Runnable() {
            @Override
            public void run() {
                for (BleBean bleBean : bleBeans) {
                    manager.getDaoSession().insertOrReplace(bleBean);
                }
            }
        });
    }


    /**
     * 删除数据
     */
    public void deleteBleBean(BleBean bleBean) {
        manager.getDaoSession().delete(bleBean);
    }


    /**
     * 删除全部数据
     */
    public void deleteAll(Class cls) {
        manager.getDaoSession().deleteAll(cls);
    }

    /**
     * 更新数据
     */
    public void updateStudent(BleBean bleBean) {
        manager.getDaoSession().update(bleBean);
    }

    /**
     * 按照主键返回单条数据
     */
    public BleBean listOneStudent(long key) {
        return manager.getDaoSession().load(BleBean.class, key);
    }

    /**
     * 根据指定条件查询数据
     */
//    public List<BleBean> queryStudent() {
//        //查询构建器
//        QueryBuilder<BleBean> builder = manager.getDaoSession().queryBuilder(BleBean.class);
//        List<BleBean> list = builder.where(BleBeanDao.Properties.Sex.ge(1)).where(BleBeanDao.Properties.Name.like("王小二")).list();
//        return list;
//    }

    /**
     * 查询全部数据
     */
    public List<BleBean> queryAll() {
        return manager.getDaoSession().loadAll(BleBean.class);
    }

    public BleBean queryByMmac(String mac) {
        return manager.getDaoSession().getBleBeanDao().queryBuilder().where(BleBeanDao.Properties.Mac.eq(mac)).unique();
    }
}